import { http } from "@/utils/http";
import type { RequestResponse } from "./types";

export const homeApi = {
  // 获取首页待办任务统计
  getHomeTaskStats: (healthManagerId: string) => {
    return http.request<HomeTaskResponse>(
      "post",
      "/api/v1/hdl/app/doctor/home/task",
      { data: { healthManagerId } }
    );
  },
  // 获取待提交任务列表
  getPendingSubmitTasks: () => {
    return http.request<PendingSubmitTaskResponse>(
      "get",
      "/api/v1/hdl/app/doctor/home/task/pending-submit"
    );
  },
  // 获取待审核任务列表
  getPendingReviewTasks: () => {
    return http.request<PendingReviewTaskResponse>(
      "get",
      "/api/v1/hdl/app/doctor/home/task/pending-review"
    );
  },
  // 查询最近报告列表
  getLatestReportList: (params: { sortType?: number; userId: number }) => {
    return http.request<ReportListResponse>(
      "get",
      "/api/v1/hdl/app/doctor/home/report/list",
      { params }
    );
  }
};
// 首页待办任务统计数据类型
export interface HomeTaskData {
  todayTaskCount: number; // 今日任务数量
  pendingSubmitTaskCount: number; // 待提交任务数量
  pendingReviewTaskCount: number; // 待审核任务数量
}

// 首页待办任务统计响应类型
export type HomeTaskResponse = RequestResponse<HomeTaskData>;

// 待提交任务项数据类型
export interface PendingSubmitTaskItem {
  taskId: number; // 任务ID
  planId: number; // 计划ID
  taskType: number; // 任务类型
  taskTypeName: string; // 任务类型名称
  userId: number; // 用户ID
  userName: string; // 用户名称
  userAvatar: string; // 用户头像
  familyMemberName: string; // 家庭成员名称
  followUpUserId: number; // 随访用户ID
  followUpUserName: string; // 随访用户名称
  followUpUserRole: string; // 随访用户角色
  followUpUserAvatar: string; // 随访用户头像
  startDate: string; // 开始日期
  endDate: string; // 结束日期
  archiveId: number; // 档案ID
}

// 待提交任务列表响应类型
export type PendingSubmitTaskResponse = RequestResponse<
  PendingSubmitTaskItem[]
>;

// 待审核任务项数据类型
export interface PendingReviewTaskItem {
  type: number; // 类型
  reportId: number; // 报告ID
  userId: number; // 用户ID
  userAvatar: string; // 用户头像
  userName: string; // 用户名称
  familyMemberName: string; // 家庭成员名称
  institution: string; // 机构
  inspectionDate: string; // 检查日期
  reportType: number; // 报告类型
  reportTypeName: string; // 报告类型名称
  submitUserId: number; // 提交用户ID
  submitUserName: string; // 提交用户名称
}

// 待审核任务列表响应类型
export type PendingReviewTaskResponse = RequestResponse<
  PendingReviewTaskItem[]
>;

// 异常指标项数据类型
export interface AbnormalIndicatorItem {
  itemId: number; // 指标项ID
  name: string; // 指标名称
  desc: string; // 指标描述
}

// 报告项数据类型
export interface ReportItem {
  reportId: number; // 报告ID
  reportNumber: string; // 报告编号
  userId: number; // 用户ID
  userName: string; // 用户名称
  familyMemberName: string; // 家庭成员名称
  attentionLevel: number; // 关注级别
  riskLevel: string; // 风险级别
  healthCategory: string; // 健康分类
  abnormalIndicators: AbnormalIndicatorItem[]; // 异常指标列表
  imageDataCount: number; // 影像数据数量
  institution: string; // 机构
  reportCategory: number; // 报告分类
  inspectionDate: string; // 检查日期
  reportStatusId: number; // 报告状态ID
  reportStatusName: string; // 报告状态名称
  familyId: number; // 家庭ID
}

// 报告列表响应类型
export type ReportListResponse = RequestResponse<ReportItem[]>;
